﻿using System;
namespace Producers.Kis.Xtee.Riik.Ee.Producer.Kis {
    
    
    public partial class ClaimBasePrincipalClaim : global::Producers.Kis.Xtee.Riik.Ee.Producer.Kis.IClaimBasePrincipalClaim {
        
        private global::Producers.Kis.Xtee.Riik.Ee.Producer.Kis.NonEmptyString @__objectNumber;
        
        private global::Producers.Kis.Xtee.Riik.Ee.Producer.Kis.ClaimBaseType @__type;
        
        private System.DateTime? @__beginningDate;
        
        private System.DateTime? @__endDate;
        
        private System.DateTime? @__billDate;
        
        private System.Int32? @__claimBaseID;
        
        private bool @__isProof;
        
        private global::Producers.Kis.Xtee.Riik.Ee.Producer.Kis.NonEmptyString @__liikDescription;
        
        private global::Producers.Kis.Xtee.Riik.Ee.Producer.Kis.ClaimBaseFavourPrincipalClaim @__liik;
        
        public ClaimBasePrincipalClaim() {
        }
        
        /// <summary>
        /// All parameters
        /// </summary>
        public ClaimBasePrincipalClaim(global::Producers.Kis.Xtee.Riik.Ee.Producer.Kis.NonEmptyString @objectNumber, global::Producers.Kis.Xtee.Riik.Ee.Producer.Kis.ClaimBaseType @type, System.DateTime? @beginningDate, System.DateTime? @endDate, System.DateTime? @billDate, System.Int32? @claimBaseID, bool @isProof, global::Producers.Kis.Xtee.Riik.Ee.Producer.Kis.NonEmptyString @liikDescription, global::Producers.Kis.Xtee.Riik.Ee.Producer.Kis.ClaimBaseFavourPrincipalClaim @liik) {
            this.@__objectNumber = @objectNumber;
            this.@__type = @type;
            this.@__beginningDate = @beginningDate;
            this.@__endDate = @endDate;
            this.@__billDate = @billDate;
            this.@__claimBaseID = @claimBaseID;
            this.@__isProof = @isProof;
            this.@__liikDescription = @liikDescription;
            this.@__liik = @liik;
        }
        
        /// <summary>
        /// Required parameters
        /// </summary>
        public ClaimBasePrincipalClaim(global::Producers.Kis.Xtee.Riik.Ee.Producer.Kis.ClaimBaseType @type, bool @isProof, global::Producers.Kis.Xtee.Riik.Ee.Producer.Kis.ClaimBaseFavourPrincipalClaim @liik) {
            this.@__type = @type;
            this.@__isProof = @isProof;
            this.@__liik = @liik;
        }
        
        /// <summary>
        /// Copy Constructor
        /// </summary>
        protected ClaimBasePrincipalClaim(IClaimBasePrincipalClaim @claimBasePrincipalClaim) {
            this.@__objectNumber = @claimBasePrincipalClaim.ObjectNumber;
            this.@__type = @claimBasePrincipalClaim.Type;
            this.@__beginningDate = @claimBasePrincipalClaim.BeginningDate;
            this.@__endDate = @claimBasePrincipalClaim.EndDate;
            this.@__billDate = @claimBasePrincipalClaim.BillDate;
            this.@__claimBaseID = @claimBasePrincipalClaim.ClaimBaseID;
            this.@__isProof = @claimBasePrincipalClaim.IsProof;
            this.@__liikDescription = @claimBasePrincipalClaim.LiikDescription;
            this.@__liik = @claimBasePrincipalClaim.Liik;
        }
        
        public virtual global::Producers.Kis.Xtee.Riik.Ee.Producer.Kis.NonEmptyString ObjectNumber {
            get {
                return this.@__objectNumber;
            }
            set {
                this.@__objectNumber = value;
            }
        }
        
        public virtual global::Producers.Kis.Xtee.Riik.Ee.Producer.Kis.ClaimBaseType Type {
            get {
                return this.@__type;
            }
            set {
                this.@__type = value;
            }
        }
        
        public virtual System.DateTime? BeginningDate {
            get {
                return this.@__beginningDate;
            }
            set {
                this.@__beginningDate = value;
            }
        }
        
        public virtual System.DateTime? EndDate {
            get {
                return this.@__endDate;
            }
            set {
                this.@__endDate = value;
            }
        }
        
        public virtual System.DateTime? BillDate {
            get {
                return this.@__billDate;
            }
            set {
                this.@__billDate = value;
            }
        }
        
        public virtual System.Int32? ClaimBaseID {
            get {
                return this.@__claimBaseID;
            }
            set {
                this.@__claimBaseID = value;
            }
        }
        
        public virtual bool IsProof {
            get {
                return this.@__isProof;
            }
            set {
                this.@__isProof = value;
            }
        }
        
        public virtual global::Producers.Kis.Xtee.Riik.Ee.Producer.Kis.NonEmptyString LiikDescription {
            get {
                return this.@__liikDescription;
            }
            set {
                this.@__liikDescription = value;
            }
        }
        
        public virtual global::Producers.Kis.Xtee.Riik.Ee.Producer.Kis.ClaimBaseFavourPrincipalClaim Liik {
            get {
                return this.@__liik;
            }
            set {
                this.@__liik = value;
            }
        }
    }
}
